package com.cheng.example.book.advise151.chap2;

import java.util.Scanner;


/**
 * 建议28：优先使用整型池
 *
 * cache是IntegerCache内部类的一个静态数组，容纳的是-128到127之间的Integer对象。
 * 通过valueOf产生包装对象时，如果int参数在-128到127之间，则直接从整型池中获得对象，不在该范围内的int类型则通过new生成包装对象。
 */
public class Client28 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while (input.hasNextInt()) {
            int tempInt = input.nextInt();
            System.out.println("\n=====" + tempInt + " 的相等判断=====");
            // 两个通过new产生的对象
            Integer i = new Integer(tempInt);
            Integer j = new Integer(tempInt);
            System.out.println(" new 产生的对象：" + (i == j));
            // 基本类型转换为包装类型后比较
            i = tempInt;
            j = tempInt;
            System.out.println(" 基本类型转换的对象：" + (i == j));
            // 通过静态方法生成一个实例
            i = Integer.valueOf(tempInt);
            j = Integer.valueOf(tempInt);
            System.out.println(" valueOf产生的对象：" + (i == j));
        }
    }

}